plugins {
    {{#androidGradleVersion}}
    id 'com.android.library' version '{{{.}}}'
    {{/androidGradleVersion}}
    {{^androidGradleVersion}}
    id 'com.android.library' version '8.0.0'
    {{/androidGradleVersion}}
    id 'maven-publish'
}

android {
    namespace "{{invokerPackage}}"
    {{#androidSdkVersion}}
    compileSdkVersion {{{.}}}
    {{/androidSdkVersion}}
    {{^androidSdkVersion}}
    compileSdkVersion 33
    {{/androidSdkVersion}}
    {{#androidBuildToolsVersion}}
    buildToolsVersion '{{{.}}}'
    {{/androidBuildToolsVersion}}
    {{^androidBuildToolsVersion}}
    buildToolsVersion '34.0.0'
    {{/androidBuildToolsVersion}}
    defaultConfig {
        minSdkVersion 14
        {{#androidSdkVersion}}
        targetSdkVersion {{{.}}}
        {{/androidSdkVersion}}
        {{^androidSdkVersion}}
        targetSdkVersion 33
        {{/androidSdkVersion}}
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    lintOptions {
        abortOnError false
    }
    packagingOptions {
        resources.excludes += "META-INF/DEPENDENCIES"
    }
    testOptions {
        unitTests.returnDefaultValues = true
    }
    publishing {
        singleVariant('release') {
            withSourcesJar()
        }
    }
}

ext {
    swagger_annotations_version = "1.6.6"
    gson_version = "2.10.1"
    httpcore_version = "4.4.16"
    httpmime_version = "4.5.14"
    volley_version = "1.2.1"
    junit_version = "4.13.2"
}

dependencies {
    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
    implementation "com.google.code.gson:gson:$gson_version"
    implementation ("org.apache.httpcomponents:httpcore:$httpcore_version") {
        exclude(group: "org.apache.httpcomponents", module: "httpclient")
    }
    implementation ("org.apache.httpcomponents:httpmime:$httpmime_version") {
        exclude(group: "org.apache.httpcomponents", module: "httpclient")
    }
    implementation "com.android.volley:volley:${volley_version}"
    testImplementation "junit:junit:$junit_version"
}

publishing {
    publications {
        release(MavenPublication) {
            groupId = '{{groupId}}'
            artifactId = '{{artifactId}}'
            version = '{{artifactVersion}}'

            afterEvaluate {
                from components.release
            }
        }
    }
}
